package edu.uestc.canary.commons;

import cn.hutool.crypto.digest.DigestUtil;

/**
 * 使用bcrypt加密/比对工具类
 */
public class EncryptUtils {
    private EncryptUtils(){

    }

    /**
     * 对字符串进行bcrypt加密(每次盐随机,随机盐和字符串一起完成加密)
     * @param password 要加密的字符串
     * @return 加密后的字符串
     */
    public static String bcrypt(String password){
        return DigestUtil.bcrypt(password);
    }

    /**
     * 原字符串和加密后的字符串进行匹配比对(去掉双方的随机盐后加密后进行比对)
     * @param token 原字符串
     * @param hashed bcrypt加密后的字符串
     * @return 比对成功:true
     */
    public static boolean bcryptCheck(String token, String hashed){
        return DigestUtil.bcryptCheck(token, hashed);
    }
}
